/**
 * <copyright>
 * </copyright>
 *

 */
package ms.unicorn.language.languagedef.impl;

import ms.unicorn.language.languagedef.Anchor;
import ms.unicorn.language.languagedef.ColorDef;
import ms.unicorn.language.languagedef.CompartmentViewDef;
import ms.unicorn.language.languagedef.ConnectionDecorator;
import ms.unicorn.language.languagedef.ConnectionStyleDef;
import ms.unicorn.language.languagedef.DecoratorDef;
import ms.unicorn.language.languagedef.DecoratorLocation;
import ms.unicorn.language.languagedef.DecoratorLocatorDef;
import ms.unicorn.language.languagedef.DockType;
import ms.unicorn.language.languagedef.ElementDef;
import ms.unicorn.language.languagedef.EntityDef;
import ms.unicorn.language.languagedef.FigureDef;
import ms.unicorn.language.languagedef.ImportStatement;
import ms.unicorn.language.languagedef.LabelSourceField;
import ms.unicorn.language.languagedef.LabelViewDef;
import ms.unicorn.language.languagedef.LanguageDef;
import ms.unicorn.language.languagedef.LanguagedefFactory;
import ms.unicorn.language.languagedef.LanguagedefPackage;
import ms.unicorn.language.languagedef.Library;
import ms.unicorn.language.languagedef.LineStyle;
import ms.unicorn.language.languagedef.Module;
import ms.unicorn.language.languagedef.ModuleItem;
import ms.unicorn.language.languagedef.Namespace;
import ms.unicorn.language.languagedef.NodeViewDef;
import ms.unicorn.language.languagedef.Parameter;
import ms.unicorn.language.languagedef.ParameterType;
import ms.unicorn.language.languagedef.ParentLanguages;
import ms.unicorn.language.languagedef.Policies;
import ms.unicorn.language.languagedef.PolicyDef;
import ms.unicorn.language.languagedef.RelationConstraint;
import ms.unicorn.language.languagedef.RelationDef;
import ms.unicorn.language.languagedef.RelationViewDef;
import ms.unicorn.language.languagedef.SubFigure;
import ms.unicorn.language.languagedef.SubViewDef;
import ms.unicorn.language.languagedef.TagDef;
import ms.unicorn.language.languagedef.TagEntryDef;
import ms.unicorn.language.languagedef.ToolBox;
import ms.unicorn.language.languagedef.ToolGroup;
import ms.unicorn.language.languagedef.ToolItem;
import ms.unicorn.language.languagedef.ToolView;
import ms.unicorn.language.languagedef.ValidatorDef;
import ms.unicorn.language.languagedef.ViewDef;
import ms.unicorn.language.languagedef.XRectangle;
import ms.unicorn.language.languagedef.XReferenceExpression;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

import org.eclipse.emf.ecore.impl.EPackageImpl;

import org.eclipse.xtext.xbase.XbasePackage;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model <b>Package</b>.
 * <!-- end-user-doc -->
 * @generated
 */
public class LanguagedefPackageImpl extends EPackageImpl implements LanguagedefPackage
{
  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass moduleEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass libraryEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass moduleItemEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass namespaceEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass languageDefEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass parentLanguagesEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass importStatementEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass toolBoxEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass toolItemEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass toolViewEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass tagDefEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass tagEntryDefEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass elementDefEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass entityDefEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass relationDefEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass policiesEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass viewDefEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass nodeViewDefEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass labelViewDefEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass labelSourceFieldEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass compartmentViewDefEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass relationViewDefEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass relationConstraintEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass connectionStyleDefEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass connectionDecoratorEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass decoratorDefEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass decoratorLocatorDefEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass policyDefEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass subViewDefEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass figureDefEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass subFigureEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass parameterEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass colorDefEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass validatorDefEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass anchorEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xRectangleEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass xReferenceExpressionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass toolGroupEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EEnum parameterTypeEEnum = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EEnum lineStyleEEnum = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EEnum dockTypeEEnum = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EEnum decoratorLocationEEnum = null;

  /**
   * Creates an instance of the model <b>Package</b>, registered with
   * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
   * package URI value.
   * <p>Note: the correct way to create the package is via the static
   * factory method {@link #init init()}, which also performs
   * initialization of the package, or returns the registered package,
   * if one already exists.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see org.eclipse.emf.ecore.EPackage.Registry
   * @see ms.unicorn.language.languagedef.LanguagedefPackage#eNS_URI
   * @see #init()
   * @generated
   */
  private LanguagedefPackageImpl()
  {
    super(eNS_URI, LanguagedefFactory.eINSTANCE);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private static boolean isInited = false;

  /**
   * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
   * 
   * <p>This method is used to initialize {@link LanguagedefPackage#eINSTANCE} when that field is accessed.
   * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #eNS_URI
   * @see #createPackageContents()
   * @see #initializePackageContents()
   * @generated
   */
  public static LanguagedefPackage init()
  {
    if (isInited) return (LanguagedefPackage)EPackage.Registry.INSTANCE.getEPackage(LanguagedefPackage.eNS_URI);

    // Obtain or create and register package
    LanguagedefPackageImpl theLanguagedefPackage = (LanguagedefPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof LanguagedefPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new LanguagedefPackageImpl());

    isInited = true;

    // Initialize simple dependencies
    XbasePackage.eINSTANCE.eClass();

    // Create package meta-data objects
    theLanguagedefPackage.createPackageContents();

    // Initialize created meta-data
    theLanguagedefPackage.initializePackageContents();

    // Mark meta-data to indicate it can't be changed
    theLanguagedefPackage.freeze();

  
    // Update the registry and return the package
    EPackage.Registry.INSTANCE.put(LanguagedefPackage.eNS_URI, theLanguagedefPackage);
    return theLanguagedefPackage;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getModule()
  {
    return moduleEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getModule_Name()
  {
    return (EAttribute)moduleEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getModule_Parents()
  {
    return (EReference)moduleEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getModule_Imports()
  {
    return (EReference)moduleEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getModule_Items()
  {
    return (EReference)moduleEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getModule_Vars()
  {
    return (EReference)moduleEClass.getEStructuralFeatures().get(4);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getLibrary()
  {
    return libraryEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getModuleItem()
  {
    return moduleItemEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getModuleItem_Name()
  {
    return (EAttribute)moduleItemEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getNamespace()
  {
    return namespaceEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getNamespace_Items()
  {
    return (EReference)namespaceEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getNamespace_Vars()
  {
    return (EReference)namespaceEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getLanguageDef()
  {
    return languageDefEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getLanguageDef_Text()
  {
    return (EAttribute)languageDefEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getLanguageDef_ModelExtension()
  {
    return (EAttribute)languageDefEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getLanguageDef_DiagramExtension()
  {
    return (EAttribute)languageDefEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getLanguageDef_Smallimage()
  {
    return (EAttribute)languageDefEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getLanguageDef_Largeimage()
  {
    return (EAttribute)languageDefEClass.getEStructuralFeatures().get(4);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getLanguageDef_Toolbox()
  {
    return (EReference)languageDefEClass.getEStructuralFeatures().get(5);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getParentLanguages()
  {
    return parentLanguagesEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getParentLanguages_ImportURI()
  {
    return (EAttribute)parentLanguagesEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getImportStatement()
  {
    return importStatementEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getImportStatement_ImportedNamespace()
  {
    return (EAttribute)importStatementEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getToolBox()
  {
    return toolBoxEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getToolBox_Name()
  {
    return (EAttribute)toolBoxEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getToolBox_Groups()
  {
    return (EReference)toolBoxEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getToolBox_Views()
  {
    return (EReference)toolBoxEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getToolItem()
  {
    return toolItemEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getToolItem_Text()
  {
    return (EAttribute)toolItemEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getToolItem_Tooltip()
  {
    return (EAttribute)toolItemEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getToolItem_Element()
  {
    return (EReference)toolItemEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getToolView()
  {
    return toolViewEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getToolView_Name()
  {
    return (EAttribute)toolViewEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getToolView_Parameters()
  {
    return (EReference)toolViewEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getToolView_Tools()
  {
    return (EReference)toolViewEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getTagDef()
  {
    return tagDefEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getTagDef_Name()
  {
    return (EAttribute)tagDefEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getTagDef_Entry()
  {
    return (EReference)tagDefEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getTagEntryDef()
  {
    return tagEntryDefEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getTagEntryDef_Name()
  {
    return (EAttribute)tagEntryDefEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getTagEntryDef_Parameters()
  {
    return (EReference)tagEntryDefEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getTagEntryDef_TypedEntry()
  {
    return (EAttribute)tagEntryDefEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getTagEntryDef_Type()
  {
    return (EAttribute)tagEntryDefEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getTagEntryDef_Value()
  {
    return (EReference)tagEntryDefEClass.getEStructuralFeatures().get(4);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getTagEntryDef_Ref()
  {
    return (EReference)tagEntryDefEClass.getEStructuralFeatures().get(5);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getElementDef()
  {
    return elementDefEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getElementDef_Inherited()
  {
    return (EAttribute)elementDefEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getElementDef_Text()
  {
    return (EAttribute)elementDefEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getElementDef_SmallImage()
  {
    return (EAttribute)elementDefEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getElementDef_LargeImage()
  {
    return (EAttribute)elementDefEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getElementDef_FigureParams()
  {
    return (EReference)elementDefEClass.getEStructuralFeatures().get(4);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getElementDef_Figure()
  {
    return (EReference)elementDefEClass.getEStructuralFeatures().get(5);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getElementDef_View()
  {
    return (EReference)elementDefEClass.getEStructuralFeatures().get(6);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getElementDef_Helper()
  {
    return (EAttribute)elementDefEClass.getEStructuralFeatures().get(7);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getElementDef_Policies()
  {
    return (EReference)elementDefEClass.getEStructuralFeatures().get(8);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getElementDef_Tags()
  {
    return (EReference)elementDefEClass.getEStructuralFeatures().get(9);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getEntityDef()
  {
    return entityDefEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getEntityDef_SuperElement()
  {
    return (EReference)entityDefEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getRelationDef()
  {
    return relationDefEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getRelationDef_SuperElement()
  {
    return (EReference)relationDefEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getPolicies()
  {
    return policiesEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getPolicies_PolicyExp()
  {
    return (EReference)policiesEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getViewDef()
  {
    return viewDefEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getViewDef_ViewType()
  {
    return (EAttribute)viewDefEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getViewDef_Editpart()
  {
    return (EAttribute)viewDefEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getNodeViewDef()
  {
    return nodeViewDefEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getNodeViewDef_Children()
  {
    return (EReference)nodeViewDefEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getLabelViewDef()
  {
    return labelViewDefEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getLabelViewDef_ViewFields()
  {
    return (EReference)labelViewDefEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getLabelViewDef_ViewPattern()
  {
    return (EAttribute)labelViewDefEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getLabelViewDef_EditFields()
  {
    return (EReference)labelViewDefEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getLabelViewDef_EditPattern()
  {
    return (EAttribute)labelViewDefEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getLabelSourceField()
  {
    return labelSourceFieldEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getLabelSourceField_BuiltIn()
  {
    return (EAttribute)labelSourceFieldEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getLabelSourceField_Name()
  {
    return (EAttribute)labelSourceFieldEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getLabelSourceField_Field()
  {
    return (EReference)labelSourceFieldEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getCompartmentViewDef()
  {
    return compartmentViewDefEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getRelationViewDef()
  {
    return relationViewDefEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getRelationViewDef_Style()
  {
    return (EReference)relationViewDefEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getRelationViewDef_Children()
  {
    return (EReference)relationViewDefEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getRelationViewDef_Constraints()
  {
    return (EReference)relationViewDefEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getRelationConstraint()
  {
    return relationConstraintEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getRelationConstraint_Forbidden()
  {
    return (EAttribute)relationConstraintEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getRelationConstraint_Sources()
  {
    return (EReference)relationConstraintEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getRelationConstraint_Targets()
  {
    return (EReference)relationConstraintEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getRelationConstraint_Style()
  {
    return (EReference)relationConstraintEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getRelationConstraint_Validators()
  {
    return (EReference)relationConstraintEClass.getEStructuralFeatures().get(4);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getConnectionStyleDef()
  {
    return connectionStyleDefEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getConnectionStyleDef_WidthSet()
  {
    return (EAttribute)connectionStyleDefEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getConnectionStyleDef_Width()
  {
    return (EAttribute)connectionStyleDefEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getConnectionStyleDef_LineStyleSet()
  {
    return (EAttribute)connectionStyleDefEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getConnectionStyleDef_Style()
  {
    return (EAttribute)connectionStyleDefEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getConnectionStyleDef_ColorSet()
  {
    return (EAttribute)connectionStyleDefEClass.getEStructuralFeatures().get(4);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getConnectionStyleDef_Color()
  {
    return (EReference)connectionStyleDefEClass.getEStructuralFeatures().get(5);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getConnectionStyleDef_Decorators()
  {
    return (EReference)connectionStyleDefEClass.getEStructuralFeatures().get(6);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getConnectionDecorator()
  {
    return connectionDecoratorEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getConnectionDecorator_Paramaters()
  {
    return (EReference)connectionDecoratorEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getConnectionDecorator_Decorator()
  {
    return (EReference)connectionDecoratorEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getDecoratorDef()
  {
    return decoratorDefEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getDecoratorDef_Clazz()
  {
    return (EAttribute)decoratorDefEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getDecoratorDef_SuperElement()
  {
    return (EReference)decoratorDefEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getDecoratorDef_Tags()
  {
    return (EReference)decoratorDefEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getDecoratorLocatorDef()
  {
    return decoratorLocatorDefEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getDecoratorLocatorDef_Clazz()
  {
    return (EAttribute)decoratorLocatorDefEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getDecoratorLocatorDef_SuperElement()
  {
    return (EReference)decoratorLocatorDefEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getDecoratorLocatorDef_Tags()
  {
    return (EReference)decoratorLocatorDefEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getPolicyDef()
  {
    return policyDefEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getPolicyDef_LayoutPolicy()
  {
    return (EAttribute)policyDefEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getPolicyDef_Policy()
  {
    return (EAttribute)policyDefEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getPolicyDef_Clazz()
  {
    return (EAttribute)policyDefEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getPolicyDef_SuperElement()
  {
    return (EReference)policyDefEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getPolicyDef_Tags()
  {
    return (EReference)policyDefEClass.getEStructuralFeatures().get(4);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getSubViewDef()
  {
    return subViewDefEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getSubViewDef_Name()
  {
    return (EAttribute)subViewDefEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getSubViewDef_View()
  {
    return (EReference)subViewDefEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getFigureDef()
  {
    return figureDefEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getFigureDef_Clazz()
  {
    return (EAttribute)figureDefEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getFigureDef_Inherited()
  {
    return (EAttribute)figureDefEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getFigureDef_SuperElement()
  {
    return (EReference)figureDefEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getFigureDef_Children()
  {
    return (EReference)figureDefEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getFigureDef_Tags()
  {
    return (EReference)figureDefEClass.getEStructuralFeatures().get(4);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getSubFigure()
  {
    return subFigureEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getSubFigure_Name()
  {
    return (EAttribute)subFigureEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getSubFigure_Layout()
  {
    return (EReference)subFigureEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getSubFigure_Figure()
  {
    return (EReference)subFigureEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getParameter()
  {
    return parameterEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getParameter_ParamId()
  {
    return (EAttribute)parameterEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getParameter_Value()
  {
    return (EReference)parameterEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getParameter_DockValue()
  {
    return (EAttribute)parameterEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getParameter_BoundValue()
  {
    return (EReference)parameterEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getParameter_AnchorValue()
  {
    return (EReference)parameterEClass.getEStructuralFeatures().get(4);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getParameter_LocationValue()
  {
    return (EAttribute)parameterEClass.getEStructuralFeatures().get(5);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getParameter_Item()
  {
    return (EReference)parameterEClass.getEStructuralFeatures().get(6);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getColorDef()
  {
    return colorDefEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getColorDef_Red()
  {
    return (EAttribute)colorDefEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getColorDef_Green()
  {
    return (EAttribute)colorDefEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getColorDef_Blue()
  {
    return (EAttribute)colorDefEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getColorDef_Alpha()
  {
    return (EAttribute)colorDefEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getValidatorDef()
  {
    return validatorDefEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getValidatorDef_Clazz()
  {
    return (EAttribute)validatorDefEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getValidatorDef_SuperElement()
  {
    return (EReference)validatorDefEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getValidatorDef_Tags()
  {
    return (EReference)validatorDefEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getAnchor()
  {
    return anchorEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getAnchor_AnchorTop()
  {
    return (EAttribute)anchorEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getAnchor_AnchorLeft()
  {
    return (EAttribute)anchorEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getAnchor_AnchorRight()
  {
    return (EAttribute)anchorEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getAnchor_AnchorBottom()
  {
    return (EAttribute)anchorEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXRectangle()
  {
    return xRectangleEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXRectangle_X()
  {
    return (EReference)xRectangleEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXRectangle_Y()
  {
    return (EReference)xRectangleEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXRectangle_W()
  {
    return (EReference)xRectangleEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXRectangle_H()
  {
    return (EReference)xRectangleEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getXReferenceExpression()
  {
    return xReferenceExpressionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXReferenceExpression_Reference()
  {
    return (EReference)xReferenceExpressionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getXReferenceExpression_NewInstance()
  {
    return (EAttribute)xReferenceExpressionEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getXReferenceExpression_Definition()
  {
    return (EReference)xReferenceExpressionEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getToolGroup()
  {
    return toolGroupEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getToolGroup_Children()
  {
    return (EReference)toolGroupEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EEnum getParameterType()
  {
    return parameterTypeEEnum;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EEnum getLineStyle()
  {
    return lineStyleEEnum;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EEnum getDockType()
  {
    return dockTypeEEnum;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EEnum getDecoratorLocation()
  {
    return decoratorLocationEEnum;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public LanguagedefFactory getLanguagedefFactory()
  {
    return (LanguagedefFactory)getEFactoryInstance();
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private boolean isCreated = false;

  /**
   * Creates the meta-model objects for the package.  This method is
   * guarded to have no affect on any invocation but its first.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public void createPackageContents()
  {
    if (isCreated) return;
    isCreated = true;

    // Create classes and their features
    moduleEClass = createEClass(MODULE);
    createEAttribute(moduleEClass, MODULE__NAME);
    createEReference(moduleEClass, MODULE__PARENTS);
    createEReference(moduleEClass, MODULE__IMPORTS);
    createEReference(moduleEClass, MODULE__ITEMS);
    createEReference(moduleEClass, MODULE__VARS);

    libraryEClass = createEClass(LIBRARY);

    moduleItemEClass = createEClass(MODULE_ITEM);
    createEAttribute(moduleItemEClass, MODULE_ITEM__NAME);

    namespaceEClass = createEClass(NAMESPACE);
    createEReference(namespaceEClass, NAMESPACE__ITEMS);
    createEReference(namespaceEClass, NAMESPACE__VARS);

    languageDefEClass = createEClass(LANGUAGE_DEF);
    createEAttribute(languageDefEClass, LANGUAGE_DEF__TEXT);
    createEAttribute(languageDefEClass, LANGUAGE_DEF__MODEL_EXTENSION);
    createEAttribute(languageDefEClass, LANGUAGE_DEF__DIAGRAM_EXTENSION);
    createEAttribute(languageDefEClass, LANGUAGE_DEF__SMALLIMAGE);
    createEAttribute(languageDefEClass, LANGUAGE_DEF__LARGEIMAGE);
    createEReference(languageDefEClass, LANGUAGE_DEF__TOOLBOX);

    parentLanguagesEClass = createEClass(PARENT_LANGUAGES);
    createEAttribute(parentLanguagesEClass, PARENT_LANGUAGES__IMPORT_URI);

    importStatementEClass = createEClass(IMPORT_STATEMENT);
    createEAttribute(importStatementEClass, IMPORT_STATEMENT__IMPORTED_NAMESPACE);

    toolBoxEClass = createEClass(TOOL_BOX);
    createEAttribute(toolBoxEClass, TOOL_BOX__NAME);
    createEReference(toolBoxEClass, TOOL_BOX__GROUPS);
    createEReference(toolBoxEClass, TOOL_BOX__VIEWS);

    toolItemEClass = createEClass(TOOL_ITEM);
    createEAttribute(toolItemEClass, TOOL_ITEM__TEXT);
    createEAttribute(toolItemEClass, TOOL_ITEM__TOOLTIP);
    createEReference(toolItemEClass, TOOL_ITEM__ELEMENT);

    toolViewEClass = createEClass(TOOL_VIEW);
    createEAttribute(toolViewEClass, TOOL_VIEW__NAME);
    createEReference(toolViewEClass, TOOL_VIEW__PARAMETERS);
    createEReference(toolViewEClass, TOOL_VIEW__TOOLS);

    tagDefEClass = createEClass(TAG_DEF);
    createEAttribute(tagDefEClass, TAG_DEF__NAME);
    createEReference(tagDefEClass, TAG_DEF__ENTRY);

    tagEntryDefEClass = createEClass(TAG_ENTRY_DEF);
    createEAttribute(tagEntryDefEClass, TAG_ENTRY_DEF__NAME);
    createEReference(tagEntryDefEClass, TAG_ENTRY_DEF__PARAMETERS);
    createEAttribute(tagEntryDefEClass, TAG_ENTRY_DEF__TYPED_ENTRY);
    createEAttribute(tagEntryDefEClass, TAG_ENTRY_DEF__TYPE);
    createEReference(tagEntryDefEClass, TAG_ENTRY_DEF__VALUE);
    createEReference(tagEntryDefEClass, TAG_ENTRY_DEF__REF);

    elementDefEClass = createEClass(ELEMENT_DEF);
    createEAttribute(elementDefEClass, ELEMENT_DEF__INHERITED);
    createEAttribute(elementDefEClass, ELEMENT_DEF__TEXT);
    createEAttribute(elementDefEClass, ELEMENT_DEF__SMALL_IMAGE);
    createEAttribute(elementDefEClass, ELEMENT_DEF__LARGE_IMAGE);
    createEReference(elementDefEClass, ELEMENT_DEF__FIGURE_PARAMS);
    createEReference(elementDefEClass, ELEMENT_DEF__FIGURE);
    createEReference(elementDefEClass, ELEMENT_DEF__VIEW);
    createEAttribute(elementDefEClass, ELEMENT_DEF__HELPER);
    createEReference(elementDefEClass, ELEMENT_DEF__POLICIES);
    createEReference(elementDefEClass, ELEMENT_DEF__TAGS);

    entityDefEClass = createEClass(ENTITY_DEF);
    createEReference(entityDefEClass, ENTITY_DEF__SUPER_ELEMENT);

    relationDefEClass = createEClass(RELATION_DEF);
    createEReference(relationDefEClass, RELATION_DEF__SUPER_ELEMENT);

    policiesEClass = createEClass(POLICIES);
    createEReference(policiesEClass, POLICIES__POLICY_EXP);

    viewDefEClass = createEClass(VIEW_DEF);
    createEAttribute(viewDefEClass, VIEW_DEF__VIEW_TYPE);
    createEAttribute(viewDefEClass, VIEW_DEF__EDITPART);

    nodeViewDefEClass = createEClass(NODE_VIEW_DEF);
    createEReference(nodeViewDefEClass, NODE_VIEW_DEF__CHILDREN);

    labelViewDefEClass = createEClass(LABEL_VIEW_DEF);
    createEReference(labelViewDefEClass, LABEL_VIEW_DEF__VIEW_FIELDS);
    createEAttribute(labelViewDefEClass, LABEL_VIEW_DEF__VIEW_PATTERN);
    createEReference(labelViewDefEClass, LABEL_VIEW_DEF__EDIT_FIELDS);
    createEAttribute(labelViewDefEClass, LABEL_VIEW_DEF__EDIT_PATTERN);

    labelSourceFieldEClass = createEClass(LABEL_SOURCE_FIELD);
    createEAttribute(labelSourceFieldEClass, LABEL_SOURCE_FIELD__BUILT_IN);
    createEAttribute(labelSourceFieldEClass, LABEL_SOURCE_FIELD__NAME);
    createEReference(labelSourceFieldEClass, LABEL_SOURCE_FIELD__FIELD);

    compartmentViewDefEClass = createEClass(COMPARTMENT_VIEW_DEF);

    relationViewDefEClass = createEClass(RELATION_VIEW_DEF);
    createEReference(relationViewDefEClass, RELATION_VIEW_DEF__STYLE);
    createEReference(relationViewDefEClass, RELATION_VIEW_DEF__CHILDREN);
    createEReference(relationViewDefEClass, RELATION_VIEW_DEF__CONSTRAINTS);

    relationConstraintEClass = createEClass(RELATION_CONSTRAINT);
    createEAttribute(relationConstraintEClass, RELATION_CONSTRAINT__FORBIDDEN);
    createEReference(relationConstraintEClass, RELATION_CONSTRAINT__SOURCES);
    createEReference(relationConstraintEClass, RELATION_CONSTRAINT__TARGETS);
    createEReference(relationConstraintEClass, RELATION_CONSTRAINT__STYLE);
    createEReference(relationConstraintEClass, RELATION_CONSTRAINT__VALIDATORS);

    connectionStyleDefEClass = createEClass(CONNECTION_STYLE_DEF);
    createEAttribute(connectionStyleDefEClass, CONNECTION_STYLE_DEF__WIDTH_SET);
    createEAttribute(connectionStyleDefEClass, CONNECTION_STYLE_DEF__WIDTH);
    createEAttribute(connectionStyleDefEClass, CONNECTION_STYLE_DEF__LINE_STYLE_SET);
    createEAttribute(connectionStyleDefEClass, CONNECTION_STYLE_DEF__STYLE);
    createEAttribute(connectionStyleDefEClass, CONNECTION_STYLE_DEF__COLOR_SET);
    createEReference(connectionStyleDefEClass, CONNECTION_STYLE_DEF__COLOR);
    createEReference(connectionStyleDefEClass, CONNECTION_STYLE_DEF__DECORATORS);

    connectionDecoratorEClass = createEClass(CONNECTION_DECORATOR);
    createEReference(connectionDecoratorEClass, CONNECTION_DECORATOR__PARAMATERS);
    createEReference(connectionDecoratorEClass, CONNECTION_DECORATOR__DECORATOR);

    decoratorDefEClass = createEClass(DECORATOR_DEF);
    createEAttribute(decoratorDefEClass, DECORATOR_DEF__CLAZZ);
    createEReference(decoratorDefEClass, DECORATOR_DEF__SUPER_ELEMENT);
    createEReference(decoratorDefEClass, DECORATOR_DEF__TAGS);

    decoratorLocatorDefEClass = createEClass(DECORATOR_LOCATOR_DEF);
    createEAttribute(decoratorLocatorDefEClass, DECORATOR_LOCATOR_DEF__CLAZZ);
    createEReference(decoratorLocatorDefEClass, DECORATOR_LOCATOR_DEF__SUPER_ELEMENT);
    createEReference(decoratorLocatorDefEClass, DECORATOR_LOCATOR_DEF__TAGS);

    policyDefEClass = createEClass(POLICY_DEF);
    createEAttribute(policyDefEClass, POLICY_DEF__LAYOUT_POLICY);
    createEAttribute(policyDefEClass, POLICY_DEF__POLICY);
    createEAttribute(policyDefEClass, POLICY_DEF__CLAZZ);
    createEReference(policyDefEClass, POLICY_DEF__SUPER_ELEMENT);
    createEReference(policyDefEClass, POLICY_DEF__TAGS);

    subViewDefEClass = createEClass(SUB_VIEW_DEF);
    createEAttribute(subViewDefEClass, SUB_VIEW_DEF__NAME);
    createEReference(subViewDefEClass, SUB_VIEW_DEF__VIEW);

    figureDefEClass = createEClass(FIGURE_DEF);
    createEAttribute(figureDefEClass, FIGURE_DEF__CLAZZ);
    createEAttribute(figureDefEClass, FIGURE_DEF__INHERITED);
    createEReference(figureDefEClass, FIGURE_DEF__SUPER_ELEMENT);
    createEReference(figureDefEClass, FIGURE_DEF__CHILDREN);
    createEReference(figureDefEClass, FIGURE_DEF__TAGS);

    subFigureEClass = createEClass(SUB_FIGURE);
    createEAttribute(subFigureEClass, SUB_FIGURE__NAME);
    createEReference(subFigureEClass, SUB_FIGURE__LAYOUT);
    createEReference(subFigureEClass, SUB_FIGURE__FIGURE);

    parameterEClass = createEClass(PARAMETER);
    createEAttribute(parameterEClass, PARAMETER__PARAM_ID);
    createEReference(parameterEClass, PARAMETER__VALUE);
    createEAttribute(parameterEClass, PARAMETER__DOCK_VALUE);
    createEReference(parameterEClass, PARAMETER__BOUND_VALUE);
    createEReference(parameterEClass, PARAMETER__ANCHOR_VALUE);
    createEAttribute(parameterEClass, PARAMETER__LOCATION_VALUE);
    createEReference(parameterEClass, PARAMETER__ITEM);

    colorDefEClass = createEClass(COLOR_DEF);
    createEAttribute(colorDefEClass, COLOR_DEF__RED);
    createEAttribute(colorDefEClass, COLOR_DEF__GREEN);
    createEAttribute(colorDefEClass, COLOR_DEF__BLUE);
    createEAttribute(colorDefEClass, COLOR_DEF__ALPHA);

    validatorDefEClass = createEClass(VALIDATOR_DEF);
    createEAttribute(validatorDefEClass, VALIDATOR_DEF__CLAZZ);
    createEReference(validatorDefEClass, VALIDATOR_DEF__SUPER_ELEMENT);
    createEReference(validatorDefEClass, VALIDATOR_DEF__TAGS);

    anchorEClass = createEClass(ANCHOR);
    createEAttribute(anchorEClass, ANCHOR__ANCHOR_TOP);
    createEAttribute(anchorEClass, ANCHOR__ANCHOR_LEFT);
    createEAttribute(anchorEClass, ANCHOR__ANCHOR_RIGHT);
    createEAttribute(anchorEClass, ANCHOR__ANCHOR_BOTTOM);

    xRectangleEClass = createEClass(XRECTANGLE);
    createEReference(xRectangleEClass, XRECTANGLE__X);
    createEReference(xRectangleEClass, XRECTANGLE__Y);
    createEReference(xRectangleEClass, XRECTANGLE__W);
    createEReference(xRectangleEClass, XRECTANGLE__H);

    xReferenceExpressionEClass = createEClass(XREFERENCE_EXPRESSION);
    createEReference(xReferenceExpressionEClass, XREFERENCE_EXPRESSION__REFERENCE);
    createEAttribute(xReferenceExpressionEClass, XREFERENCE_EXPRESSION__NEW_INSTANCE);
    createEReference(xReferenceExpressionEClass, XREFERENCE_EXPRESSION__DEFINITION);

    toolGroupEClass = createEClass(TOOL_GROUP);
    createEReference(toolGroupEClass, TOOL_GROUP__CHILDREN);

    // Create enums
    parameterTypeEEnum = createEEnum(PARAMETER_TYPE);
    lineStyleEEnum = createEEnum(LINE_STYLE);
    dockTypeEEnum = createEEnum(DOCK_TYPE);
    decoratorLocationEEnum = createEEnum(DECORATOR_LOCATION);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private boolean isInitialized = false;

  /**
   * Complete the initialization of the package and its meta-model.  This
   * method is guarded to have no affect on any invocation but its first.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public void initializePackageContents()
  {
    if (isInitialized) return;
    isInitialized = true;

    // Initialize package
    setName(eNAME);
    setNsPrefix(eNS_PREFIX);
    setNsURI(eNS_URI);

    // Obtain other dependent packages
    XbasePackage theXbasePackage = (XbasePackage)EPackage.Registry.INSTANCE.getEPackage(XbasePackage.eNS_URI);

    // Create type parameters

    // Set bounds for type parameters

    // Add supertypes to classes
    libraryEClass.getESuperTypes().add(this.getModule());
    namespaceEClass.getESuperTypes().add(this.getModuleItem());
    languageDefEClass.getESuperTypes().add(this.getModule());
    toolItemEClass.getESuperTypes().add(this.getModuleItem());
    elementDefEClass.getESuperTypes().add(this.getModuleItem());
    entityDefEClass.getESuperTypes().add(this.getElementDef());
    relationDefEClass.getESuperTypes().add(this.getElementDef());
    viewDefEClass.getESuperTypes().add(this.getModuleItem());
    nodeViewDefEClass.getESuperTypes().add(this.getViewDef());
    labelViewDefEClass.getESuperTypes().add(this.getViewDef());
    compartmentViewDefEClass.getESuperTypes().add(this.getViewDef());
    relationViewDefEClass.getESuperTypes().add(this.getViewDef());
    connectionStyleDefEClass.getESuperTypes().add(this.getModuleItem());
    decoratorDefEClass.getESuperTypes().add(this.getModuleItem());
    decoratorLocatorDefEClass.getESuperTypes().add(this.getModuleItem());
    policyDefEClass.getESuperTypes().add(this.getModuleItem());
    figureDefEClass.getESuperTypes().add(this.getModuleItem());
    colorDefEClass.getESuperTypes().add(this.getModuleItem());
    validatorDefEClass.getESuperTypes().add(this.getModuleItem());
    toolGroupEClass.getESuperTypes().add(this.getToolItem());

    // Initialize classes and features; add operations and parameters
    initEClass(moduleEClass, Module.class, "Module", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getModule_Name(), ecorePackage.getEString(), "name", null, 0, 1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getModule_Parents(), this.getParentLanguages(), null, "parents", null, 0, -1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getModule_Imports(), this.getImportStatement(), null, "imports", null, 0, -1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getModule_Items(), this.getModuleItem(), null, "items", null, 0, -1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getModule_Vars(), theXbasePackage.getXExpression(), null, "vars", null, 0, -1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(libraryEClass, Library.class, "Library", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(moduleItemEClass, ModuleItem.class, "ModuleItem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getModuleItem_Name(), ecorePackage.getEString(), "name", null, 0, 1, ModuleItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(namespaceEClass, Namespace.class, "Namespace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getNamespace_Items(), this.getModuleItem(), null, "items", null, 0, -1, Namespace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getNamespace_Vars(), theXbasePackage.getXExpression(), null, "vars", null, 0, -1, Namespace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(languageDefEClass, LanguageDef.class, "LanguageDef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getLanguageDef_Text(), ecorePackage.getEString(), "text", null, 0, 1, LanguageDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getLanguageDef_ModelExtension(), ecorePackage.getEString(), "modelExtension", null, 0, 1, LanguageDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getLanguageDef_DiagramExtension(), ecorePackage.getEString(), "diagramExtension", null, 0, 1, LanguageDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getLanguageDef_Smallimage(), ecorePackage.getEString(), "smallimage", null, 0, 1, LanguageDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getLanguageDef_Largeimage(), ecorePackage.getEString(), "largeimage", null, 0, 1, LanguageDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getLanguageDef_Toolbox(), this.getToolBox(), null, "toolbox", null, 0, 1, LanguageDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(parentLanguagesEClass, ParentLanguages.class, "ParentLanguages", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getParentLanguages_ImportURI(), ecorePackage.getEString(), "importURI", null, 0, 1, ParentLanguages.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(importStatementEClass, ImportStatement.class, "ImportStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getImportStatement_ImportedNamespace(), ecorePackage.getEString(), "importedNamespace", null, 0, 1, ImportStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(toolBoxEClass, ToolBox.class, "ToolBox", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getToolBox_Name(), ecorePackage.getEString(), "name", null, 0, 1, ToolBox.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getToolBox_Groups(), this.getXReferenceExpression(), null, "Groups", null, 0, -1, ToolBox.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getToolBox_Views(), this.getToolView(), null, "Views", null, 0, -1, ToolBox.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(toolItemEClass, ToolItem.class, "ToolItem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getToolItem_Text(), ecorePackage.getEString(), "text", null, 0, 1, ToolItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getToolItem_Tooltip(), ecorePackage.getEString(), "tooltip", null, 0, 1, ToolItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getToolItem_Element(), this.getElementDef(), null, "element", null, 0, 1, ToolItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(toolViewEClass, ToolView.class, "ToolView", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getToolView_Name(), ecorePackage.getEString(), "name", null, 0, 1, ToolView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getToolView_Parameters(), this.getParameter(), null, "parameters", null, 0, -1, ToolView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getToolView_Tools(), this.getToolItem(), null, "tools", null, 0, -1, ToolView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(tagDefEClass, TagDef.class, "TagDef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getTagDef_Name(), ecorePackage.getEString(), "name", null, 0, 1, TagDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getTagDef_Entry(), this.getTagEntryDef(), null, "entry", null, 0, -1, TagDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(tagEntryDefEClass, TagEntryDef.class, "TagEntryDef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getTagEntryDef_Name(), ecorePackage.getEString(), "name", null, 0, 1, TagEntryDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getTagEntryDef_Parameters(), this.getParameter(), null, "parameters", null, 0, -1, TagEntryDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getTagEntryDef_TypedEntry(), ecorePackage.getEBoolean(), "typedEntry", null, 0, 1, TagEntryDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getTagEntryDef_Type(), ecorePackage.getEString(), "type", null, 0, 1, TagEntryDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getTagEntryDef_Value(), theXbasePackage.getXExpression(), null, "value", null, 0, 1, TagEntryDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getTagEntryDef_Ref(), this.getXReferenceExpression(), null, "ref", null, 0, 1, TagEntryDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(elementDefEClass, ElementDef.class, "ElementDef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getElementDef_Inherited(), ecorePackage.getEBoolean(), "inherited", null, 0, 1, ElementDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getElementDef_Text(), ecorePackage.getEString(), "text", null, 0, 1, ElementDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getElementDef_SmallImage(), ecorePackage.getEString(), "smallImage", null, 0, 1, ElementDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getElementDef_LargeImage(), ecorePackage.getEString(), "largeImage", null, 0, 1, ElementDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getElementDef_FigureParams(), this.getParameter(), null, "figureParams", null, 0, -1, ElementDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getElementDef_Figure(), this.getXReferenceExpression(), null, "figure", null, 0, 1, ElementDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getElementDef_View(), this.getXReferenceExpression(), null, "view", null, 0, 1, ElementDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getElementDef_Helper(), ecorePackage.getEString(), "helper", null, 0, 1, ElementDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getElementDef_Policies(), this.getPolicies(), null, "policies", null, 0, 1, ElementDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getElementDef_Tags(), this.getTagDef(), null, "tags", null, 0, -1, ElementDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(entityDefEClass, EntityDef.class, "EntityDef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getEntityDef_SuperElement(), this.getEntityDef(), null, "superElement", null, 0, 1, EntityDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(relationDefEClass, RelationDef.class, "RelationDef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getRelationDef_SuperElement(), this.getRelationDef(), null, "superElement", null, 0, 1, RelationDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(policiesEClass, Policies.class, "Policies", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getPolicies_PolicyExp(), this.getXReferenceExpression(), null, "policyExp", null, 0, -1, Policies.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(viewDefEClass, ViewDef.class, "ViewDef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getViewDef_ViewType(), ecorePackage.getEString(), "viewType", null, 0, 1, ViewDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getViewDef_Editpart(), ecorePackage.getEString(), "editpart", null, 0, 1, ViewDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(nodeViewDefEClass, NodeViewDef.class, "NodeViewDef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getNodeViewDef_Children(), this.getSubViewDef(), null, "children", null, 0, -1, NodeViewDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(labelViewDefEClass, LabelViewDef.class, "LabelViewDef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getLabelViewDef_ViewFields(), this.getLabelSourceField(), null, "viewFields", null, 0, -1, LabelViewDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getLabelViewDef_ViewPattern(), ecorePackage.getEString(), "viewPattern", null, 0, 1, LabelViewDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getLabelViewDef_EditFields(), this.getLabelSourceField(), null, "editFields", null, 0, -1, LabelViewDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getLabelViewDef_EditPattern(), ecorePackage.getEString(), "editPattern", null, 0, 1, LabelViewDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(labelSourceFieldEClass, LabelSourceField.class, "LabelSourceField", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getLabelSourceField_BuiltIn(), ecorePackage.getEBoolean(), "builtIn", null, 0, 1, LabelSourceField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getLabelSourceField_Name(), ecorePackage.getEString(), "name", null, 0, 1, LabelSourceField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getLabelSourceField_Field(), this.getTagEntryDef(), null, "field", null, 0, 1, LabelSourceField.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(compartmentViewDefEClass, CompartmentViewDef.class, "CompartmentViewDef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(relationViewDefEClass, RelationViewDef.class, "RelationViewDef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getRelationViewDef_Style(), this.getXReferenceExpression(), null, "style", null, 0, 1, RelationViewDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getRelationViewDef_Children(), this.getSubViewDef(), null, "children", null, 0, -1, RelationViewDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getRelationViewDef_Constraints(), this.getRelationConstraint(), null, "constraints", null, 0, -1, RelationViewDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(relationConstraintEClass, RelationConstraint.class, "RelationConstraint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getRelationConstraint_Forbidden(), ecorePackage.getEBoolean(), "forbidden", null, 0, 1, RelationConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getRelationConstraint_Sources(), this.getElementDef(), null, "sources", null, 0, -1, RelationConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getRelationConstraint_Targets(), this.getElementDef(), null, "targets", null, 0, -1, RelationConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getRelationConstraint_Style(), this.getXReferenceExpression(), null, "style", null, 0, 1, RelationConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getRelationConstraint_Validators(), this.getXReferenceExpression(), null, "validators", null, 0, -1, RelationConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(connectionStyleDefEClass, ConnectionStyleDef.class, "ConnectionStyleDef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getConnectionStyleDef_WidthSet(), ecorePackage.getEBoolean(), "widthSet", null, 0, 1, ConnectionStyleDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getConnectionStyleDef_Width(), ecorePackage.getEInt(), "width", null, 0, 1, ConnectionStyleDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getConnectionStyleDef_LineStyleSet(), ecorePackage.getEBoolean(), "lineStyleSet", null, 0, 1, ConnectionStyleDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getConnectionStyleDef_Style(), this.getLineStyle(), "style", null, 0, 1, ConnectionStyleDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getConnectionStyleDef_ColorSet(), ecorePackage.getEBoolean(), "colorSet", null, 0, 1, ConnectionStyleDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getConnectionStyleDef_Color(), this.getXReferenceExpression(), null, "color", null, 0, 1, ConnectionStyleDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getConnectionStyleDef_Decorators(), this.getConnectionDecorator(), null, "decorators", null, 0, -1, ConnectionStyleDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(connectionDecoratorEClass, ConnectionDecorator.class, "ConnectionDecorator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getConnectionDecorator_Paramaters(), this.getParameter(), null, "paramaters", null, 0, -1, ConnectionDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getConnectionDecorator_Decorator(), this.getXReferenceExpression(), null, "decorator", null, 0, 1, ConnectionDecorator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(decoratorDefEClass, DecoratorDef.class, "DecoratorDef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getDecoratorDef_Clazz(), ecorePackage.getEString(), "clazz", null, 0, 1, DecoratorDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getDecoratorDef_SuperElement(), this.getDecoratorDef(), null, "superElement", null, 0, 1, DecoratorDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getDecoratorDef_Tags(), this.getTagDef(), null, "tags", null, 0, -1, DecoratorDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(decoratorLocatorDefEClass, DecoratorLocatorDef.class, "DecoratorLocatorDef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getDecoratorLocatorDef_Clazz(), ecorePackage.getEString(), "clazz", null, 0, 1, DecoratorLocatorDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getDecoratorLocatorDef_SuperElement(), this.getDecoratorLocatorDef(), null, "superElement", null, 0, 1, DecoratorLocatorDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getDecoratorLocatorDef_Tags(), this.getTagDef(), null, "tags", null, 0, -1, DecoratorLocatorDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(policyDefEClass, PolicyDef.class, "PolicyDef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getPolicyDef_LayoutPolicy(), ecorePackage.getEBoolean(), "layoutPolicy", null, 0, 1, PolicyDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getPolicyDef_Policy(), ecorePackage.getEString(), "policy", null, 0, 1, PolicyDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getPolicyDef_Clazz(), ecorePackage.getEString(), "clazz", null, 0, 1, PolicyDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getPolicyDef_SuperElement(), this.getPolicyDef(), null, "superElement", null, 0, 1, PolicyDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getPolicyDef_Tags(), this.getTagDef(), null, "tags", null, 0, -1, PolicyDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(subViewDefEClass, SubViewDef.class, "SubViewDef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getSubViewDef_Name(), ecorePackage.getEString(), "name", null, 0, 1, SubViewDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getSubViewDef_View(), this.getXReferenceExpression(), null, "view", null, 0, 1, SubViewDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(figureDefEClass, FigureDef.class, "FigureDef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getFigureDef_Clazz(), ecorePackage.getEString(), "clazz", null, 0, 1, FigureDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getFigureDef_Inherited(), ecorePackage.getEBoolean(), "inherited", null, 0, 1, FigureDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getFigureDef_SuperElement(), this.getFigureDef(), null, "superElement", null, 0, 1, FigureDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getFigureDef_Children(), this.getSubFigure(), null, "children", null, 0, -1, FigureDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getFigureDef_Tags(), this.getTagDef(), null, "tags", null, 0, -1, FigureDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(subFigureEClass, SubFigure.class, "SubFigure", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getSubFigure_Name(), ecorePackage.getEString(), "name", null, 0, 1, SubFigure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getSubFigure_Layout(), this.getParameter(), null, "layout", null, 0, -1, SubFigure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getSubFigure_Figure(), this.getXReferenceExpression(), null, "figure", null, 0, 1, SubFigure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(parameterEClass, Parameter.class, "Parameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getParameter_ParamId(), this.getParameterType(), "paramId", null, 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getParameter_Value(), theXbasePackage.getXExpression(), null, "value", null, 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getParameter_DockValue(), this.getDockType(), "dockValue", null, 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getParameter_BoundValue(), this.getXRectangle(), null, "boundValue", null, 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getParameter_AnchorValue(), this.getAnchor(), null, "anchorValue", null, 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getParameter_LocationValue(), this.getDecoratorLocation(), "locationValue", null, 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getParameter_Item(), this.getXReferenceExpression(), null, "item", null, 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(colorDefEClass, ColorDef.class, "ColorDef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getColorDef_Red(), ecorePackage.getEInt(), "red", null, 0, 1, ColorDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getColorDef_Green(), ecorePackage.getEInt(), "green", null, 0, 1, ColorDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getColorDef_Blue(), ecorePackage.getEInt(), "blue", null, 0, 1, ColorDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getColorDef_Alpha(), ecorePackage.getEInt(), "alpha", null, 0, 1, ColorDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(validatorDefEClass, ValidatorDef.class, "ValidatorDef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getValidatorDef_Clazz(), ecorePackage.getEString(), "clazz", null, 0, 1, ValidatorDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getValidatorDef_SuperElement(), this.getValidatorDef(), null, "superElement", null, 0, 1, ValidatorDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getValidatorDef_Tags(), this.getTagDef(), null, "tags", null, 0, -1, ValidatorDef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(anchorEClass, Anchor.class, "Anchor", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getAnchor_AnchorTop(), ecorePackage.getEBoolean(), "anchorTop", null, 0, 1, Anchor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getAnchor_AnchorLeft(), ecorePackage.getEBoolean(), "anchorLeft", null, 0, 1, Anchor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getAnchor_AnchorRight(), ecorePackage.getEBoolean(), "anchorRight", null, 0, 1, Anchor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getAnchor_AnchorBottom(), ecorePackage.getEBoolean(), "anchorBottom", null, 0, 1, Anchor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xRectangleEClass, XRectangle.class, "XRectangle", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getXRectangle_X(), theXbasePackage.getXExpression(), null, "x", null, 0, 1, XRectangle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXRectangle_Y(), theXbasePackage.getXExpression(), null, "y", null, 0, 1, XRectangle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXRectangle_W(), theXbasePackage.getXExpression(), null, "w", null, 0, 1, XRectangle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXRectangle_H(), theXbasePackage.getXExpression(), null, "h", null, 0, 1, XRectangle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(xReferenceExpressionEClass, XReferenceExpression.class, "XReferenceExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getXReferenceExpression_Reference(), this.getModuleItem(), null, "reference", null, 0, 1, XReferenceExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getXReferenceExpression_NewInstance(), ecorePackage.getEBoolean(), "newInstance", null, 0, 1, XReferenceExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getXReferenceExpression_Definition(), this.getModuleItem(), null, "definition", null, 0, 1, XReferenceExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(toolGroupEClass, ToolGroup.class, "ToolGroup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getToolGroup_Children(), this.getXReferenceExpression(), null, "children", null, 0, -1, ToolGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    // Initialize enums and add enum literals
    initEEnum(parameterTypeEEnum, ParameterType.class, "ParameterType");
    addEEnumLiteral(parameterTypeEEnum, ParameterType.VISIBLE);
    addEEnumLiteral(parameterTypeEEnum, ParameterType.EDITABLE);
    addEEnumLiteral(parameterTypeEEnum, ParameterType.MULTILINE);
    addEEnumLiteral(parameterTypeEEnum, ParameterType.DESCRIPTION);
    addEEnumLiteral(parameterTypeEEnum, ParameterType.CATEGORY);
    addEEnumLiteral(parameterTypeEEnum, ParameterType.TEXT);
    addEEnumLiteral(parameterTypeEEnum, ParameterType.NOTIFY);
    addEEnumLiteral(parameterTypeEEnum, ParameterType.MIN);
    addEEnumLiteral(parameterTypeEEnum, ParameterType.MAX);
    addEEnumLiteral(parameterTypeEEnum, ParameterType.PRIMARY);
    addEEnumLiteral(parameterTypeEEnum, ParameterType.RESIZABLE);
    addEEnumLiteral(parameterTypeEEnum, ParameterType.DOCK);
    addEEnumLiteral(parameterTypeEEnum, ParameterType.ANCHOR);
    addEEnumLiteral(parameterTypeEEnum, ParameterType.LOCATION);
    addEEnumLiteral(parameterTypeEEnum, ParameterType.SIZE);
    addEEnumLiteral(parameterTypeEEnum, ParameterType.MARGIN);
    addEEnumLiteral(parameterTypeEEnum, ParameterType.POSITION);
    addEEnumLiteral(parameterTypeEEnum, ParameterType.BOUND);
    addEEnumLiteral(parameterTypeEEnum, ParameterType.LOCATOR);

    initEEnum(lineStyleEEnum, LineStyle.class, "LineStyle");
    addEEnumLiteral(lineStyleEEnum, LineStyle.NONE);
    addEEnumLiteral(lineStyleEEnum, LineStyle.SOLID);
    addEEnumLiteral(lineStyleEEnum, LineStyle.DASH);
    addEEnumLiteral(lineStyleEEnum, LineStyle.DOT);
    addEEnumLiteral(lineStyleEEnum, LineStyle.DASHDOT);
    addEEnumLiteral(lineStyleEEnum, LineStyle.DASHDOTDOT);

    initEEnum(dockTypeEEnum, DockType.class, "DockType");
    addEEnumLiteral(dockTypeEEnum, DockType.TOP);
    addEEnumLiteral(dockTypeEEnum, DockType.LEFT);
    addEEnumLiteral(dockTypeEEnum, DockType.RIGHT);
    addEEnumLiteral(dockTypeEEnum, DockType.BOTTOM);
    addEEnumLiteral(dockTypeEEnum, DockType.FILL);
    addEEnumLiteral(dockTypeEEnum, DockType.NONE);

    initEEnum(decoratorLocationEEnum, DecoratorLocation.class, "DecoratorLocation");
    addEEnumLiteral(decoratorLocationEEnum, DecoratorLocation.SOURCE);
    addEEnumLiteral(decoratorLocationEEnum, DecoratorLocation.TARGET);

    // Create resource
    createResource(eNS_URI);
  }

} //LanguagedefPackageImpl
